//引入模块
const gulp = require("gulp");
//压缩js
const uglify = require("gulp-uglify");
//编译scss和压缩css
const sass = require("gulp-sass");
const minifyCss = require("gulp-minify-css");




//如果目录改变，只需更改这一个下面的跟着改变，devpath开发目录，pusblishPath发布目录
let devpath ="./src/";
let pusblishPath = "E:\\qzH5\\PHPnow-1.5.6\\htdocs\\fabudamai";


//复制htm1文件
function copyHtml(){
    //获取该目录下src文件下所有后缀为.HTML文件
    gulp.src(devpath+"*.html")
    //发送文件目的地.注：\\两个一起，/只须一个
    .pipe(gulp.dest(pusblishPath));
}


//复制图片文件
function copyImg(){
    //获取该目录下src文件下img下所有后缀为jpg和png文件(也可以/*代表所有文件)
    gulp.src(devpath+"img/**/*")
    //发送文件目的地.如果没有img文件会自动产生
    .pipe(gulp.dest(pusblishPath+"\\img"));
}


//处理sass (把sass编译成css)
function doSass(){
    //获取该目录下src文件下scss文件下所有后缀为.scss文件
    gulp.src(devpath+"scss/*.scss")
    //添加管道编译scss文件为css
    .pipe(sass())
    //添加管道压缩css
    .pipe(minifyCss())
    //发送文件目的地.注：\\两个一起，/只须一个
    .pipe(gulp.dest(pusblishPath+"\\css"));
}


//处理js (压缩)
function doJs(){
    //获取该目录下src文件下所有后缀为.HTML文件
    gulp.src(devpath+"js/*.js")
    //添加管道压缩js
    .pipe(uglify())
    //发送文件目的地.注：\\两个一起，/只须一个
    .pipe(gulp.dest(pusblishPath+"\\js"));
}


//创建任务，在所在文加下用cmd运行gulp watchall
gulp.task("watChall",async function(){
    //gulp.watch()官方函数，监听作用。第一个参文件来源，第二个参执行代码 执行上面封装函数
    gulp.watch(devpath+"*.html",async ()=>{copyHtml()});
    gulp.watch(devpath+"img/*.{jpg,png}",async ()=>{copyImg()});
    gulp.watch(devpath+"scss/*.scss",async ()=>{doSass()});
    gulp.watch(devpath+"js/*.js",async ()=>{doJs()});
})
